package middlewareWeb;

import org.apache.log4j.Logger;
import org.apache.log4j.MDC;
import org.apache.log4j.PropertyConfigurator;

/**
 *Classe che implementa il Logger del MiddleWare, oggetto che permette, usando la libreria log4j, di creare file di log
 * @author myusy
 */
public class LoggerMW {
    /**
     * Metodo costruttore dell'oggetto LoggerMW
     */
    public LoggerMW(){}
    /**
     * Metodo costruttore dell'oggetto Activity
     * @param id Rappresenta l'id del componente che chiama la funzione per stampare il log
     * @param ts Timestamp rappresentato sottoforma di vector clock
     * @param op numero di sequenza di operazione
     * @param in_coda numero di oggetti effettivamente in coda
     * @param tot_inseriti numero di inserimenti totali in coda
     * @param coda Stringa che contiene sottoforma di tag XML il contenuto attuale della coda
     * @param operazione stringa che descrive l'operazione avvenuta
     */
    public void creaLog(String id,String ts,String op,int in_coda,String tot_inseriti, String coda,String operazione){
        /* Scrittura Log Monitoring*/
                if(id.compareTo("M001")==0){
                PropertyConfigurator.configure("log_manager.properties");
                }
                if(id.compareTo("W001")==0){
                PropertyConfigurator.configure("log_worker.properties");
                }
                if(id.compareTo("W002")==0){
                PropertyConfigurator.configure("log_worker1.properties");
                }
                if(id.compareTo("W003")==0){
                PropertyConfigurator.configure("log_worker2.properties");
                }
                MDC.put("id",id);
                MDC.put("timestamp", ts);
                MDC.put("sequenza-operazione", op);
                MDC.put("oggetti-in-coda", in_coda);
                MDC.put("totale-oggetti", tot_inseriti);
                MDC.put("Coda", coda);
                Logger log = Logger.getLogger(WorkerThread.class);
                log.info(operazione);
    }
    
}
